home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 2,801 to 2,900 / aol-file-protocol-4400-2801-to-2900.zip / AOLDLs / C++ Files Library / Public C++ Objects / PublicObjects.sit / CPublicObject.h < prev    next >
Text File  |  1995-07-18  |  1KB  |  59 lines

  1. /******************************************************************************
  2.  CPublicObject.h
  3.  
  4.                                 The Public Object Class
  5.  
  6.     A class that defines a linked list of objects. Whenever an instance of
  7.     CPublicObject is created, it is added to a linked list of other public
  8.     objects. This makes it easy to search for objects at run-time.
  9.  
  10.     SUPERCLASS = TCL_AUTO_DESTRUCT_OBJECT
  11.  
  12.     Written By: Matt Mendrala
  13.     
  14.     Created: 7/18/95
  15.  ******************************************************************************/
  16.  
  17. #pragma once
  18.  
  19. #include "TCL.h"
  20. #include "CList.h"
  21.  
  22. // Forward declarations
  23. class CPublicObject;
  24.  
  25. typedef CList<CPublicObject> CPublicObjectList;
  26.  
  27. // Declaration
  28.  
  29. class CPublicObject TCL_AUTO_DESTRUCT_OBJECT
  30. {
  31. public:
  32.     TCL_DECLARE_CLASS    // Run-Time Type Identification (RTTI) macro
  33.  
  34. // Instance variables
  35.     
  36.     long    objectID;    // Object's unique ID
  37.     
  38.     CPublicObject*    next;    // Next object in chain
  39.     CPublicObject*    prev;    // Previous object in chain
  40.  
  41. // Methods    
  42.  
  43.     CPublicObject( long ID = 0L );
  44.     virtual ~CPublicObject();
  45.  
  46.     void BePublic( void );
  47.     void BePrivate( void );
  48.     
  49.     long GetID(){ return objectID; }
  50.  
  51. // Static
  52.  
  53.     static CPublicObject*    head;    // First object in chain
  54.     
  55.     static CPublicObject*     FindObject( long ID );
  56.     static CPublicObject*    NextObject( CPublicObject* aObject );
  57.     static CPublicObject*    PrevObject( CPublicObject* aObject );
  58.     static CPublicObject*    FirstObject( void ){ return head; }
  59. };